﻿using System;
using SiGeCoPre.Presupuesto_BL;
using SiGeCoPre.Presupuesto_DTO;
using SiGeCoPre.Presupuesto_Factory;
using SiGeCoPre.Presupuesto_ViewGeneral;

namespace SiGeCoPre.Presupuesto_Util
{
    /// <summary>
    /// Clase para exportar presupuestos de equipos
    /// </summary>
    class ExportarEquipo
    {
       static BLClientes createCliente = BLFactoryPresupuesto.createCliente();

       /// <summary>
       /// Exporta el presupuesto
       /// </summary>
       /// <param name="equipo">Objeto con los datos del equipo</param>
       /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
       /// <param name="p">Objeto con los datos del presupuesto</param>
       /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
       public static void exportar(equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
       { 
            string ruta = System.Windows.Forms.Application.StartupPath + @"\Plantillas Framahi\";

            if (!p.EsProforma)
            {
                if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("10 mts"))
                {
                    ruta += "Equipo10.docx";
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    exportarEquipo10(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo PDF");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
                else if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("12 mts"))
                {
                    ruta += "Equipo12.docx";
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    exportarEquipo12(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo PDF");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
                else if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("21 mts"))
                {
                    ruta += "Equipo21.docx";
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    exportarEquipo21(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo PDF");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
            }
            else
            {
                if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("10 mts"))
                {
                    ruta += "Equipo10 - PROFORMA.docx";
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    exportarEquipo10PROFORMA(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo PDF");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
                else if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("12 mts"))
                {
                    ruta += "Equipo12 - PROFORMA.docx";
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    exportarEquipo12PROFORMA(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo PDF");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
                else if (p.TipoPresupuesto.Split('-')[1].Trim().Equals("21 mts"))
                {
                    ruta += "Equipo21 - PROFORMA.docx";
                    frmProgressBar progreso = new frmProgressBar();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.Show();
                    progreso.arrancarProgreso();
                    Herramientas.cerrarProceso("WINWORD.EXE");
                    exportarEquipo21PROFORMA(ruta, equipo, pc, p, rutaNueva);
                    progreso.pararProgreso();
                    progreso.cargarDetalle("Exportando Presupuesto como Archivo WORD");
                    progreso.arrancarProgreso();
                    ExportarAPDF.SaveAsPDF(rutaNueva, p.Codigo);
                    progreso.pararProgreso();
                    progreso.Close();
                    progreso.Dispose();
                }
            }

        }

       /// <summary>
       /// Crea el archivo usando la plantilla normal de equipo de 10 mts
       /// </summary>
       /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
       /// <param name="equipo">Objeto con los datos del equipo</param>
       /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
       /// <param name="p">Objeto con los datos del presupuesto</param>
       /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo10(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);

                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_CILINDROS", equipo.DetalleCilindros);

                exportar.FindAndReplace("<PRECIO>", p.Precio);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.ReemplazarMarcador("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }

        }

        /// <summary>
        /// Crea el archivo usando la plantilla normal de equipo de 12 mts
        /// </summary>
        /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
        /// <param name="equipo">Objeto con los datos del equipo</param>
        /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
        /// <param name="p">Objeto con los datos del presupuesto</param>
        /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo12(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);

                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<SISTEMA DE ENFRIAMIENTO>", equipo.SistemaEnfriamiento);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_CILINDROS", equipo.DetalleCilindros);
                exportar.ReemplazarMarcador("DETALLES_EXTRAS", equipo.DetalleExtras);

                exportar.FindAndReplace("<PRECIO>", p.Precio);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.ReemplazarMarcador("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }

        }

        /// <summary>
        /// Crea el archivo usando la plantilla normal de equipo de 21 mts
        /// </summary>
        /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
        /// <param name="equipo">Objeto con los datos del equipo</param>
        /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
        /// <param name="p">Objeto con los datos del presupuesto</param>
        /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo21(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);

                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<SISTEMA DE ENFRIAMIENTO>", equipo.SistemaEnfriamiento);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<SISTEMA DE RECIRCULACION>", equipo.SistemaRecirculacion);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_CILINDROS", equipo.DetalleCilindros);
                exportar.ReemplazarMarcador("DETALLES_EXTRAS", equipo.DetalleExtras);

                exportar.FindAndReplace("<PRECIO>", p.Precio);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.ReemplazarMarcador("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }

        }

        /// <summary>
        /// Crea el archivo usando la plantilla de proforma de equipo de 10 mts
        /// </summary>
        /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
        /// <param name="equipo">Objeto con los datos del equipo</param>
        /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
        /// <param name="p">Objeto con los datos del presupuesto</param>
        /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo10PROFORMA(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);
                exportar.FindAndReplace("<CODIGO FACTURA>", p.CodFactura);
                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_DE_CILINDROS", equipo.DetalleCilindros);

                exportar.FindAndReplace("<FOB>", p.Fob);
                exportar.FindAndReplace("<CIF>", p.Cif);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.ReemplazarMarcador("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }

        }

        /// <summary>
        /// Crea el archivo usando la plantilla de proforma de equipo de 12 mts
        /// </summary>
        /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
        /// <param name="equipo">Objeto con los datos del equipo</param>
        /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
        /// <param name="p">Objeto con los datos del presupuesto</param>
        /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo12PROFORMA(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);

                exportar.FindAndReplace("<CODIGO FACTURA>", p.CodFactura);
                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<SISTEMA DE ENFRIAMIENTO>", equipo.SistemaEnfriamiento);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_CILINDROS", equipo.DetalleCilindros);
                exportar.ReemplazarMarcador("DETALLES_EXTRAS", equipo.DetalleExtras);

                exportar.FindAndReplace("<FOB>", p.Fob);
                exportar.FindAndReplace("<CIF>", p.Cif);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.ReemplazarMarcador("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }

        }

        /// <summary>
        /// Crea el archivo usando la plantilla de proforma de equipo de 21 mts
        /// </summary>
        /// <param name="ruta">Determina la ruta donde esta la plantilla</param>
        /// <param name="equipo">Objeto con los datos del equipo</param>
        /// <param name="pc">Objeto con los datos del presupuesto y el cliente</param>
        /// <param name="p">Objeto con los datos del presupuesto</param>
        /// <param name="rutaNueva">Determina la ruta donde va a ir el archivo exportado</param>
        private static void exportarEquipo21PROFORMA(string ruta, equipoDTO equipo, presupuestosClientesDTO pc, presupuestosDTO p, string rutaNueva)
        {
            try
            {
                clientesDTO c = createCliente.getCliente(pc.NombreCliente);

                ExportarAWord exportar = new ExportarAWord(ruta, rutaNueva);
                exportar.FindAndReplace("<FECHA>", p.Fecha);
                exportar.FindAndReplace("<CLIENTE>", pc.NombreCliente);
                exportar.FindAndReplace("<DIRECCION>", c.Direccion);
                exportar.FindAndReplace("<CONTACTO>", c.Contacto);
                exportar.FindAndReplace("<MAIL>", c.Mail);

                exportar.FindAndReplace("<CODIGO FACTURA>", p.CodFactura);
                exportar.FindAndReplace("<MODELO>", p.TipoPresupuesto.Split('-')[0]);
                exportar.FindAndReplace("<MOTOR PRINCIPAL>", equipo.MotorPrincipal);
                exportar.FindAndReplace("<EQUIPO HIDRAULICO>", equipo.EquipoHidraulico);
                exportar.FindAndReplace("<BOMBA HIDRAULICA>", equipo.BombaHidraulica);
                exportar.FindAndReplace("<SENSORES>", equipo.Sensores);
                exportar.FindAndReplace("<SISTEMA DE ENFRIAMIENTO>", equipo.SistemaEnfriamiento);
                exportar.FindAndReplace("<FILTROS>", equipo.Filtros);
                exportar.FindAndReplace("<SISTEMA DE RECIRCULACION>", equipo.SistemaRecirculacion);
                exportar.FindAndReplace("<LARGO>", equipo.Largo);
                exportar.FindAndReplace("<ANCHO>", equipo.Ancho);
                exportar.FindAndReplace("<INCLINACION MAXIMA>", equipo.InclinacionMaxima);
                exportar.FindAndReplace("<CAPACIDAD DE DESCARGA>", equipo.CapacidadDescarga);
                exportar.FindAndReplace("<CALZAS>", equipo.Calzas);
                exportar.FindAndReplace("<UBICACION DE LOS CILINDROS>", equipo.UbicacionCilindros);
                exportar.FindAndReplace("<CAPACIDAD OPERATIVA>", equipo.CapacidadOperativa);
                exportar.ReemplazarMarcador("INSTALACION_HIDRAULICA", equipo.InstalacionHidraulica);
                exportar.ReemplazarMarcador("INSTALACION_ELECTRICA", equipo.InstalacionElectrica);
                exportar.ReemplazarMarcador("DETALLE_CILINDROS", equipo.DetalleCilindros);
                exportar.ReemplazarMarcador("DETALLES_EXTRAS", equipo.DetalleExtras);

                exportar.FindAndReplace("<FOB>", p.Fob);
                exportar.FindAndReplace("<CIF>", p.Cif);
                exportar.ReemplazarMarcador("FORMA_DE_PAGO", p.FormaPago);
                exportar.ReemplazarMarcador("PLAZO_DE_ENTREGA", p.PlazoEntrega);
                exportar.ReemplazarMarcador("EJECUCION_DEL_MONTAJE", p.EjecucionTrabajo);
                exportar.FindAndReplace("CONSIDERACIONES_GENERALES", p.CondicionesGenerales);

                exportar.SaveDocument();
                exportar.CloseDocument();
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }
        }
    }
}
